System and method for high accuracy location determination

ABSTRACT

The various systems and methods disclosed herein provide for a secure, cost effective, and high accuracy location detection. In some embodiments of the system and method for high accuracy location detection, a mobile location device obtains and calculates location data from a plurality of sources without requiring expensive and power inefficient processors. In some embodiments, such secure, cost effective, and high accuracy location detection by the mobile location device is used in improved parking and payment management systems and methods. In some such embodiments, the location device communicates with remote geomapping servers and payment systems to provide automated parking and payment.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. application Ser. No.16/858,084, filed Apr. 24, 2020, which is a continuation of U.S.application Ser. No. 15/965,895, filed on Apr. 28, 2018, which claimspriority to U.S. Provisional Application No. 62/492,930, filed on May 1,2017, the contents of which are hereby incorporated by reference.

FIELD OF THE INVENTION

The present disclosure relates to the fields of high accuracy locationdetermination, cashless parking, wireless payment for parking, remotemanagement and control of parking, and intelligent transportationsystems more generally.

SUMMARY OF THE INVENTION

The various systems and methods disclosed herein provide for a secure,cost effective, efficient, and high accuracy location detection. In someembodiments of the system and method for high accuracy locationdetection, a mobile location device obtains and calculates accuratelocation data from a plurality of sources such as global navigationsatellite systems (GNSS), microelectromechanical systems (MEMS), andgeographic information systems (GIS) without requiring expensive andpower inefficient processors to read raw GNSS data.

In some embodiments, such secure, cost effective, and high accuracylocation detection by the location device can be applied for use inimproved parking and payment management systems and methods. In somesuch embodiments, the location device further communicates with remotegeomapping servers and payment systems to provide automated parking andpayment.

In one embodiment for improved parking and payment management, thelocation device can be placed in a user's vehicle. In one embodiment,when the location device detects that the vehicle is stopped, thelocation device begins an automated process to determine if the vehicleis in a legal parking zone. The location device initiates the automatedprocess by capturing location data from a plurality of differentsources. For example, the location device includes an antenna andprocessor for obtaining GNSS data from at least one or a plurality ofsatellites. The location device may include a MEMS inertial measurementunit processor with sensors such as accelerometers, gyroscopes, andmagnetometers to measure force, angular rate, and the magnetic fieldapplied to the location device. The location device may also be incommunication with GIS servers to obtain mapping data. The locationdevice may capture a predetermined amount of data points from each ofthe plurality of sources of location data over a predetermined amount oftime. The location device synchronizes the location data obtained fromthe plurality of different sources and calculates a final set ofcoordinates that provide, with a high degree of accuracy, thecoordinates of the location device. The location device transmits thesecoordinates to a geomapping server to determine whether the user'svehicle (holding the location device) is in a legal parking zone. If thevehicle is in a legal parking zone, the geomapping server transmits amessage to the location device indicating that a parking session can bestarted. The location device may then initiate a parking session withthe geomapping server. The geomapping server may interact with thelocation device and a mobile device of the user to confirm the start ofthe parking session.

Once a user's parking needs are satisfied, the parking session may beended in a number of ways. In one embodiment, when the location devicedetects the vehicle moving, the location device sends a message to thegeomapping server to end the parking session. In one embodiment, theparking session terminates after a predetermined period of time. Inanother embodiment, the user may send a message from the mobile deviceor the location device to the geomapping server to terminate the parkingsession. At the conclusion of the parking session, the geomapping servermay communicate with a payment processing server to charge the user forthe parking session in one embodiment. The geomapping server may send aconfirmation message to the location device and the user's mobile deviceconfirming the termination of the parking session. In some embodiments,the message confirming the termination of the parking session mayinclude information detailing the charge for the parking session. Itshould be appreciated that in some embodiments, the user may prepay fora parking session and information detailing the charge for the parkingsession may be unnecessary.

It should be appreciated that the high accuracy location detectioncombined with the novel parking management system enables an automatedparking session that frees users from carrying appropriate types ofmoney necessary to pay for parking and from leaving their vehicles tospend time paying for parking. The automated parking sessions alsoenable users to determine that they are in a legal parking spot withoutconcern about risking a parking fine for illegal parking. As the highaccuracy location detection combined with the novel parking managementsystem becomes widely adopted, the parking management system will alsoenable users to determine where and when parking spaces become availablein real or near real time.

In alternative embodiments, the secure, cost effective, and highaccuracy location detection system and method may be used with a numberof other different systems that require high accuracy locationdetection. For example, the location device can be installed incorporate vehicle fleets to collect and provide accurate data formanaging the vehicle fleets in one embodiment. In an alternativeembodiment, the location device can interact with toll pass systems toprovide toll payments and reduce the quantity of devices a user mustmaintain in a vehicle. In another embodiment, the location device andthe high accuracy location detection system may track a variety ofdifferent data points about a vehicle's use for insurance dataanalytics. The above list of uses for the high accuracy locationdetection system and method are merely examples and other suitable usesare contemplated.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a perspective view of one embodiment of a vehicle having alocation device that is in communication with numerous different systemsto determine the location of the vehicle with a high degree of accuracy.

FIG. 2A is a block schematic diagram of the disclosed system andcommunication patterns between its different elements, including thedevice, the server (or multiple servers), the database (or multipledatabases), and the user (through a mobile application or other means ofcommunication, possibly including the vehicle display screen) in oneembodiment.

FIG. 2B is a block diagram of one embodiment of the various systems andmethods further illustrating a plurality of location devices and aplurality of mobile devices.

FIG. 3 is block diagram illustrating one embodiment of elementscontained in a location device.

FIG. 4 is a block diagram illustrating one embodiment of the signalingbetween components of the location device.

FIG. 5 is a block diagram illustrating one embodiment of the connectionsbetween the power subsystems of the location device.

FIG. 6 is a block diagram illustrating one embodiment of the connectionsbetween the human interface device subsystem of the location device.

FIG. 7 is a flowchart illustrating one embodiment of the signalprocessing paths of location data in the location device.

FIG. 8 is a flowchart that illustrates one embodiment of the system andmethod for capturing and calculating coordinate data of a locationdevice.

FIG. 9 is a flowchart that depicts one embodiment of the location deviceconnecting with a geomapping server for secure communications.

FIGS. 10A, 10B, 10C, 10D, 10E, and 10F are illustrations of an exampleembodiment of starting a parking session for a vehicle in a legalparking zone and then stopping the parking session when the vehicleleaves the parking zone.

FIG. 11 illustrates one embodiment of a time-domain transaction diagramshowing the operational processes and communication between certainelements of the disclosed system.

FIG. 12 is a flowchart that illustrates one embodiment of the system andmethod for automatically detecting a parking event.

FIGS. 13A, 13B, and 13C illustrate example embodiments of screen shotsof a mobile application corresponding to various states of the system(current active session, no active session, and locating a vehicle).

FIGS. 14A and 14B illustrate block schematic diagrams showing exampleembodiments where components of a location device are integrated into orconnected to a vehicle's on-board electronic system.

DETAILED DESCRIPTION OF THE INVENTION

The disclosure herein provides various embodiments of secure, costeffective, efficient, and high accuracy location detection systems fromwhich those skilled in the art shall appreciate various novel approachesand features developed by the inventors. These various novel approachesand features, as they may appear herein, may be used individually, or incombination with each other, as desired.

In particular, the embodiments described, and references in thespecification to “one embodiment”, “an embodiment”, “an exampleembodiment”, etc., indicate that the embodiment(s) described may includea particular feature, structure, or characteristic, but every embodimentmay not necessarily include the particular feature, structure, orcharacteristic. Moreover, such phrases are not necessarily referring tothe same embodiment. Further, when a particular feature, structure, orcharacteristic is described in connection with an embodiment, personsskilled in the art may implement such feature, structure, orcharacteristic in connection with other embodiments whether or notexplicitly described.

FIG. 1 is a perspective view of a location system 5 that provides lowcost, high accuracy location detection. The location system 5 includes alocation device 10 that is mobile. In some embodiments, location device10 is a specially configured device comprising a plurality of low costlocation processors that can help calculate a location of the locationdevice 10 within a few meters of accuracy within a geographic area. Insome embodiments, the location accuracy is within four meters or less ofaccuracy. However, other suitable levels of accuracy may be achieved.The location device 10 can help calculate a location using one or moresources of location data. The location device 10 may comprise at leastone indicator light 12, a plurality of user interface buttons 18 a-18 b,and antennas 14 and 16. In some embodiments, the antennas are notvisible and are contained within the location device 10. It should beappreciated that the location device 10 may comprise more indicatorlights or no indicator lights; fewer or more user interface buttons; andfewer or more antennas. Location device 10 may include a user interfacescreen (not shown) in some embodiments. Location device 10 may includeother features as discussed below. Location device 10 may be placed in avehicle 20. The location device 10 is configured to work in a variety ofdifferent locations, including “urban canyons” created when locationdevice and vehicle 20 pass through cities and are surrounded bybuildings such as building 22 a and 22 b. These “urban canyons” createmultipath signal distortions that previously made it difficult toresolve locations of GPS units absent extremely expensive hardwaresolutions that require excessive amounts of power.

Location device 10, as shown in FIG. 1, is in communication with aplurality of different devices and systems to aid in detecting thelocation (i.e., geographic position) of location device 10. In oneembodiment, location device 10 is in communication with a plurality ofdifferent satellite systems, such as satellite system 50 a, satellitesystem 50 b, and satellite system 50 c. Location device 10 may receivelocation signal 52 from satellite system 50 a; location signal 54 fromsatellite system 50 b; and location signal 56 from satellite system 50 cthrough antenna 16. Satellite system 50 a may comprise a globalpositioning system (GPS) satellite system, which comprises a pluralityof satellites. Satellite system 50 b may comprise a Global OrbitingNavigation Satellite System (GLONASS), which comprises a plurality ofsatellites. Satellite system 50 c may comprise a Galileo satellitesystem, which comprises a plurality of satellites. It should beappreciated that in some embodiments, location device 10 may receivesignals from fewer satellite systems (e.g., satellite system 50 a, butnot other satellite systems 50 b and 50 c). In other embodiments,location device 10 may receive signals from more satellite systems thanillustrated. In some embodiments, where location device 10 is unable toreceive satellite signals, location device 10 may not receive signalsfrom any satellite.

Location device 10 may communicate through antenna 14 with a mobilenetwork 110 through one or more cellular access points 100. Cellularaccess points 100 may communicate with the mobile network 110 viacommunication link 105. It should be appreciated that mobile network 110may include hundreds or thousands of cellular access points 100 andcommunication links 105 to provide access to the mobile network 110.Through the mobile network 110, location device 10 may communicate viacommunication link 115 with one or more servers and databases in datacenter 120. Such servers may be described as geomapping servers herein.In some embodiments, system 5 may include a plurality of different datacenters spread throughout a particular country or throughout the worldto ensure that location device 10 has access to smooth and low latencycommunication to location services provided by servers in data center120. In one embodiment, mobile network 110 provides a secure connectionbetween location device 10 and servers in data center 120. In oneembodiment, the secure connection can be a virtual private network(VPN). However, other suitable secure connections can be used forlocation device 10 to communicate with the servers in data center 120.In some embodiments, the communications between location device 10 andservers in data center 120 are not secure. It should be appreciated thatin some embodiments, location device 10 may also access other servers orendpoints that are in communication with mobile network 110. In someembodiments, the system 5 may include a plurality of different mobilenetworks 110. In some embodiments, the plurality of different mobilenetworks are located in different countries. In other embodiments, someof the plurality of different mobile networks are located in the samecountry. In some embodiments, mobile network 110 is a mobile virtualnetwork (MVN). The mobile network 110 may be created as a virtualnetwork that communicates over one or more other mobile networks. Forexample, the mobile network 110 may be formed using connectivity over afirst GSM based mobile network and a second different GSM based mobilenetwork. When a mobile device 10 moves between a first GSM based mobilenetwork and a second different GSM based mobile network, the transitionand the data transmitted over the two different GSM based mobilenetworks is seamlessly routed to the same place, creating a virtualmobile network.

Location device 10 may communicate through mobile network 110 with theInternet 130. Mobile network 110 may have one or more links to theInternet 130, which permit location device 10 to communicate withendpoints on the Internet 130. In some embodiments, location device 10may access services from endpoints on the Internet 130 (not shown). Forexample, location device 10 may access GPS correction data from a serveraccessible through the Internet 130. Location device 10 may access othersuitable services through Internet 130. In some embodiments, servers indata center 120 may also communicate with endpoints through Internet 130via communication links 125.

Location system 5 also illustrates a user mobile device 140. Mobiledevice 140 may be a mobile phone or other suitable computer system. Insome embodiments, a desktop or laptop computer may be used in the samemanner as mobile device 140. The mobile device 140 is associated withthe location device 10. The servers in data center 120 store theassociation between the mobile device 140 and the location device 10.The user mobile device 140 may be in communication with one or moreservers in data center 120 to access certain services. In oneembodiment, mobile device 140 may be configured with an application toaccess information about location device 10 and parking services. Mobiledevice 140 may communicate with a mobile network 160 through one or morecellular access points 150 via communication link 145. Cellular accesspoints 150 may communicate with the mobile network 160 via one or morecommunication links 155. It should be appreciated that mobile network160 may include hundreds or thousands of cellular access points 150 andcommunication links 145 to provide access to the mobile network 110.Through the mobile network 160, the mobile device 140 may communicatevia communication link 165 with one or more servers in data center 120.As noted above, a plurality of different data centers 120 may be used toprovide services to mobile device 140. In some embodiments, the mobilenetwork 160 and mobile network 110 can be the same mobile network,depending on the geographic location of the location device 10 and themobile device 140.

While not shown, location device 10 may also directly communicate withmobile device 140. In some embodiments, the communication may occur overa short range wireless link such as Bluetooth or via hardwired linkssuch as universal serial bus (USB) or Ethernet.

In various embodiments, communication links noted herein can comprisehardwire or wireless communication links. It should be appreciated thatnot all communication links and network nodes used to form theillustrated communication links are shown in FIG. 1 or other figures.

It should be appreciated that methods of communications of system 5 arenot limited to the various systems and networks shown in FIG. 1.Location device 10 may be communication with any other suitable numberof networks and through any other suitable communication links.

FIG. 2A is a block schematic diagram illustrating one embodiment of thehigh accuracy location system for parking and possible links between itselements. The user 245, e.g. an individual driver or a company managinga corporate fleet, uses a vehicle 20 (or vehicles), which may be owned,rented, or used for employment and business operations. The locationdevice 10 is placed in the vehicle 20. A database 210 may storegeographical coordinates of legal parking zones. In some embodiments,the database 210 can be stored on an external memory device, such as SDmemory card, or directly in the internal memory of the processingdevice, such as flash memory within location device 10. The databasepreferably contains information defining legal parking zones in terms ofgeolocated polygons. In an alternative embodiment, the parking zones canbe defined as the center and radius of a circle. The data in database210 can be derived from open data sources distributed by municipalitiesor from traditional surveying, for example, using methods such as thosedescribed in U.S. Pat. No. 7,215,255, which is hereby incorporated byreference.

In one embodiment, the server 205 is a computer, either a physicalmachine or a virtual cloud or several machines or virtual instancesunited together that may be housed in a data center such as data center120 from FIG. 1. A communication link 200 is provided between the serverand other components of the system: the location device 10, database210, and the user 245 in one embodiment. The communication link 200 maybe a wireless communication link, a hardware communication link, or acombination of both types of communications. In the illustration of FIG.2A, the location device 10 communicates to the server 205 when thevehicle 20 arrives in a legal parking zone. The server 205 then connectsto the database 210 to retrieve relevant information about the legalparking zone, the user, their vehicle, and their parking history.Retrieval of parking history and real time parking information can beused to prevent multiple vehicles from attempting to park in the samelegal parking zone. Retrieval of parking history and real time parkinginformation can also be used to prevent the same vehicle from attemptingto park in the same legal parking zone beyond the time limit allowed bylaw. For example, a user may park in a given legal parking zone A fortwo hours and reach the time limit for that zone. If the user 245 thenmoves the vehicle to the next parking spot within the same zone A, theserver 205 may be configured to recognize that the user 245 already usedthe full time limit for zone A and cannot immediately park in this zoneA again for some predetermined period of time.

In one embodiment, after the server 205 establishes that the user canlegally park in the identified legal parking zone, the server 205communicates to the location device 10 the information about the hourlylimit in this zone. The server 205 may receive a confirmation messagefrom the location device 10 if the session has started successfully, andthe server 205 may then communicate information about the parkingsession to the user 245, in this embodiment.

In one embodiment, a user 245 can install a mobile application 220 ontheir smartphone, tablet, or other portable wireless data-capabledevice, as is illustrated in FIGS. 13A-13C. The user 245 can configure aparking management account associated with the user 245 to selectivelyenable receipt of parking reminders through the mobile application 220or other notification mechanisms via communication links 215. As notedabove with other communication links, communications link 215 may be awireless communication link, a hardware communication link, or acombination of both types of communications. In one embodiment, thenotification mechanisms may include notifications through electronicmail 230, a website 225, short message service (SMS) text 235, othermeans of communication 240, or some combination of the above. An entitymanaging the parking system can provide a customer service function 250that can be contacted via phone over link 260 or through link 255 via asoftware application to ask questions, resolve operational issues, andcontrol the parking system. It should therefore be appreciated that insome embodiments, the user 245 is able to customize the activation oftheir parking sessions and communication settings.

FIG. 2B is a block diagram of one embodiment of the various systems andmethods further illustrating a plurality of location devices and aplurality of mobile devices. The system elements of the mobile network110, the data center 120, Internet 130, and the mobile network 160 andthe lines or links of communication between them are the same or similarto the system elements discussed above in FIG. 1. FIG. 2B furtherillustrates a plurality of location devices, such as location device 10a, location device 10 b, location device 10 c, and location device 10 doperating within the system. These location devices 10 a-10 d are eachthe same or similar to the location device 10 described above. It shouldbe appreciated that the system illustrated in FIG. 2B may support anysuitable number of additional location devices 10 a-10 d. In someembodiments, a higher saturation of location devices in any givengeographic region provides better information to the servers in datacenter 120. This in turn, enables the servers in data center 120 toprovide better information to the location devices and elements in thesystem (e.g., location devices 10 a-10 d and mobile devices 140 a-140d). In some embodiments having a plurality of different mobile networks110, at least one of the location devices 10 a-10 d may be incommunication with one of the different mobile networks. For example,location device 10 a may be located in the United States and incommunication with a mobile network 110 located in the United States.Whereas, location device 10 d may be located in the United Kingdom andmay be in communication with a different mobile network.

FIG. 2B further illustrates mobile device 140 a, mobile device 140 b,mobile device 140 c, and mobile device 140 d. These mobile devices 140a-140 d are each the same or similar to the mobile device 140 describedabove. It should be appreciated that the system illustrated in FIG. 2Bmay support any suitable number of additional mobile devices 140 a-140d. Like mobile device 140, each mobile device 140 a-140 d is associatedwith at least one of the location devices 10 a-10 d. In someembodiments, mobile device 140 may be associated with more than onelocation device 140 a-140 d. As noted above, these associations can bestored in a server or database in data center 120. For example, ifmobile device 140 a belongs to user A who has two cars, user A may placea location device 10 a in one car and a location device 10 b in theother car. Thus, the system may associate location device 10 a andlocation device 10 b with user A's mobile device 140 a.

Turning now to FIG. 3, the block diagram illustrates system 300, whichcomprises subcomponents of a location device 10 in one embodiment. Inone embodiment, the location device 10 includes a processor/controlunit/microcontroller 310. Processor 310 may be an application specificintegrated circuit (ASIC) or a general purpose processor. The processor310 is in direct or indirect communication with a plurality of othercomponents shown in FIG. 3 that enable the location device 10 to detectits position or location with a high degree of accuracy. Processor 310may coordinate the functions of other modules described herein.Processor 310 may further execute algorithms to increase accuracy ofgeolocation positioning, provide timely communication between thelocation device and one or more servers. In some embodiments, processor310 further operates a link between a low-energy wireless communicationmodule 370 and any external beacons positioned outside of vehicle 20.

In one embodiment, the location device 10 includes a geolocationpositioning system 320, which is used to determine the location of thelocation device 10 (and the vehicle 20 in which location device 10resides) at any given point in time and any geographical context. Thegeolocation positioning system 320 is in communication with processor310. The geolocation positioning system 320 may comprise a customprocessor that can receive and process satellite signals, such as globalnavigation satellite system (GNSS) signals (e.g., GPS, GLONASS, Galileo,etc.). The geolocation positioning system 320 may further include anantenna, amplifiers, signal filters, and the like, to effectivelyprocess received GNSS signals. The geolocation positioning system 320transmits GNSS signals to processor 310 for further processing. In oneembodiment, the geolocation positioning system 320 comprises a reducedfeature set to make the geolocation positioning system 320 affordableand functional for use in consumer devices. For example, in someembodiments, the geolocation positioning system 320 lacks the ability toprocess raw GNSS data. In some embodiments, the geolocation positioningsystem 320 may lack the ability to reduce or eliminate the effects ofmultipath signal distortion on its own. When a reduced feature setgeolocation positioning system 320 is typically used, the reducedfeature set generally prevents the geolocation positioning system 320from performing adequately in dense urban areas. For example, a vehicle20 with location device 10 (including a reduced feature set geolocationpositioning system 320) can be parked on a side of a street that isadjacent to a parking meter in a legal parking zone. Yet, the reducedfeature set geolocation positioning system 320 might erroneouslydetermine its location as standing next to the street's centerline or ina building due to multipath signal distortion. Even a more expensiveGNSS processor may not be able to mitigate against multipath signaldistortion on their own. However, when the geolocation positioningsystem 320 is configured with certain other systems discussed below, thegeolocation positioning system 320 provides high accuracy locationdetection despite the reduced feature set of geolocation positioningsystem 320. The reduced feature set also enables the geolocationpositioning system 320 to use less power in operation. In someembodiments, geolocation positioning system 320 will detect a locationof the location device 10 within approximately 4 meters or less, as wellas parking events.

In alternative embodiments, various solutions can be adopted to helpprovide the desired positioning or location accuracy for location device10 with GNSS corrections data. For example, a differential GPS systemassisted by the data received from the continuously operating referencestations (CORS), such as the one described in U.S. Pat. No. 5,490,073(which is hereby incorporated by reference in its entirety), can providehelp determining positioning in a dense urban environment. At present,there are several publicly operating CORS networks in the United States,such as NYSnet in the state of New York. The data from the CORS networkcan be obtained by the geolocation positioning module 320 in thelocation device 10 via established protocols, such as the RTCM 10403.1standard or other suitable standards. In another embodiment, real-timekinematics data and raw data from the receiver are used to evaluatepseudo ranges and other variables in a custom algorithm that can beimplemented in an ASIC or software, to determine a more precise locationof the location device 10 (and the vehicle 20). In further embodiments,alignment to road maps, Assisted GPS, and other suitable techniques canbe used to aid in determining the desired positioning or locationaccuracy of the location device 10.

In one embodiment, system 300 further includes MEMS system 330. Theprocessor 310 is in communication with the MEMS system 330. In oneembodiment, the MEMS system 330 is an inertial measurement sensor (IMU)that comprises at least an accelerometer and a gyroscope. The MEMSsystem 330 can measure linear and angular motion of the location device10. In some embodiments, the MEMS system 330 further comprises amagnetometer. The MEMS system 330 may comprise other suitable sensors.When processor 310 combines data from geolocation positioning system 320and the MEMS system 330, the processor 310 can more accurately determinethe position of the location device 10 in vehicle 20. This increasedaccuracy assists in establishing the parking events and parking sessionswhile using a reduced feature set geolocation positioning system 320. Insome embodiments, when the geolocation positioning system 320 is notoperating properly (e.g., it cannot receive satellite signals when undera bridge or in a tunnel), data from the MEMS system 330 may supplantdata from the geolocation positioning system 320 to assist inestablishing the parking events and parking sessions. In someembodiments, system 300 of location device 10 may not include a MEMSsystem 330.

In one embodiment, system 300 further includes a power circuit system340. The power circuit system 340 may include one or more batteries, acharging port, an electrical outlet, and a power management integratedcircuit. The power circuit system 340 supplies power to the variouscomponents of system 300 in location device 10. In some embodiments,power circuit system 340 monitors power reserves and communicates withprocessor 310 to determine when to reduce operations of certain system300 components to conserve power or when to shut down location device10. In some embodiments, power circuit system 340 and processor 310 mayrestrict certain processes (e.g., initiating a parking session) whenpower circuit system 340 determines that available power levels arebelow a certain threshold. In a parking and payment system example, ifthe main battery of location device 10 will not support the functioningof location device 10 for more than three hours, the power circuitsystem 340 and processor 310 may prevent location device 10 frominitiating a parking session until battery levels are restored above thecertain threshold. In some embodiments, the location device 10 uses thebattery to keep some operational information in buffers to enable thelocation device quickly start (instead of a cold start where thelocation device 10 may have to go through a longer boot/initializationprocedure to be usable). In some embodiments, the location device 10includes a second battery to maintain satellite almanac information inRAM buffers. This enables the location device 10 to start without havingto reestablish the Time To First Fix with the satellites.

In one embodiment, system 300 further includes a wireless communicationsystem 350. Wireless communication system 350 provides a communicationlink between the location device 10 and at least one server (through thecommunications links discussed herein). The wireless communicationsystem 350 may include a cellular data processor, an antenna, a SIMcard, and other components necessary to communicate with mobilenetworks, like mobile network 110. In some embodiments, communicationsfrom processor 310 to the server (through mobile network 110) follows apredefined protocol and can be established, for example, throughInternet connections based on HTTP protocols (e.g., GET and POST requestmethods), through a protected Virtual Private Network (VPN), or acombination of both. For example, location device 10 and a server indata center 120 can be connected via a VPN tunnel created using theprocessor 310 in communication with wireless communication system 350.In some embodiment, the connection can be constantly refreshed and themessages reach both destinations (location device 10 and the server)through open sockets. In one embodiment of a parking and payment system,a server from data center 120 sends a signal (request message) to starta legal parking session with values for the expiration time of the legalparking session, for example, “START 1290 10:23:44 08:23:44 1”. Themessage can be space- or tab-separated and can be deciphered by thedevice as: start the legal parking session in a legal parking zone witha known ID 1290, the current time on the server (when the legal parkingsession starts) is 08:23:44, and the legal parking session can lastuntil 10:23:44. In one embodiment, the location device may notify thegeomapping server with a flag 0 or 1 in the end of a message to start aparking session whether the request for the legal parking session wasinitiated (1) automatically after a predetermined amount of time or (2)was initiated manually by the user via a mobile device or using a humaninterface device system described below. For example, if the parkingsession starts automatically (without the user taking affirmative actionon the human interface device system or mobile device) and the locationdevice notifies the geomapping server with the flag 1, the user has oneminute to cancel the parking session to prevent accruing charges for alegal parking session. An example where the user may need to cancel theparking session includes the user merely waiting to pick up a passenger,the user determines that the user requires a different parking spot, orfor some other suitable purpose). On the other hand, a message with theflag 0 will inform the geomapping server to start the parking sessionimmediately given that the user provided explicit approval because theuser affirmatively initiated a parking session via a mobile device orhuman interface device system. In one embodiment, time zone informationcan be transmitted from the server to the location device 10 in amessage since the location device 10 might not know the local time zone,but rather the UTC time.

In one embodiment, system 300 further includes a human interface devicesystem (HID) 360. The HID 360 may include one or more buttons that theuser can press. The HID 360 may include one or more LED lights that canprovided the user with useful system status information. In someembodiments, HID 360 includes a screen capable of generating anddisplaying messages to the user (e.g., reporting battery life, reportingsystem status, reporting legal parking zone information, etc.). The HID360 communicates with processor 310 to receive user input or to providethe user with information.

In one embodiment, system 300 further includes a low energy wirelesscommunication system 370. The low energy wireless communication system370 may comprise a processor, an antenna, and other components necessaryto communicate with other low energy wireless devices. The low energywireless communication system 370 may be configured to communicate overa predetermined protocol, such as IEEE 802.15 (e.g., Bluetooth). The lowenergy wireless communication system 370 can communicate with processor310 of system 300 in location device 10. In some embodiments, low energywireless communication system 370 can communicate with remote parkingenforcement devices, beacons in parking garages, and other similarlyconfigured wireless devices, which may facilitate location detection inplaces with no or limited satellite system signals (e.g., in locationswhere GNSS signals cannot be obtained).

FIGS. 4, 5, and 6 are block diagrams that illustrate more detailregarding some of the components of system 300 in location device 10,which were discussed in connection with FIG. 3.

Turning now to FIG. 4, one embodiment of the signaling between certaincomponents of the location device 10 are illustrated. As noted in FIG.3, the processor 410 (also shown as processor 310 in FIG. 3) is incommunication with a plurality of different components. In variousembodiments, processor 410 manages power, collects, and uses informationfrom the different modules illustrated in FIG. 4. The processor 410 isin communication with GNSS module 420 (which is a component ofgeolocation positioning system 320) via universal asynchronousreceiver-transmitters (UART). Information about coordinates from theGNSS module 420 are transmitted to the processor 410 via UART. The GNSSmodule 420 may generate a 1 Hz pulse and transmit the 1 Hz pulse to theprocessor 410 in some embodiments. The 1 Hz pulse is used to synchronizedata from the different modules or components that communicate withprocessor 410.

Also illustrated are a MEMS Navigation module 425 (which is a componentof MEMS system 330 in FIG. 3), cellular module 435 (which is a componentof wireless communications system 350 in FIG. 3), and Bluetooth module440 (which is a component of low energy wireless communication system370 in FIG. 3). The MEMS Navigation module 425 communicates with theprocessor 410 via Inter-Integrate Circuit (I²C) while cellular module435 and Bluetooth module 440 communicate with processor 410 via UART. Itshould be appreciated that the modules described herein may communicatewith processor 410 using any suitable method. For example, the MEMSmodule transmits inertial measurement data via I²C to processor 410,which can be used to help correct the coordinates data that processor410 obtains from the GNSS module 420. Processor 410 transmits data viaUART to cellular module 435, through which the location device 10communicates with a server to transmit the current state of the locationdevice 10 such as location device 10's coordinates and status. In someembodiments, GNSS module 420 can communicate with the cellular module435 via I²C to supply the GNSS module 420 with GNSS corrections data. Insome embodiments, firmware on location device may be updated through thecellular module 435 in communication with processor 410. In someembodiments, the Bluetooth module 440 communicates with the processor410 via UART to establish a connection between the location device 10and the user's mobile device 140.

USB connector 445 is illustrated as connected to the processor 410 viathe universal serial bus standard. In alternative embodiments, locationdevice 10 does not include a USB connector 445. In some embodiments,location device 10 includes other types of suitable connectors. Invarious embodiments, USB connector 445 can be used to power the locationdevice 10, charge batteries in location device 10, and update firmwareon location device 10.

The power management IC 430 (which is a component of power circuitsystem 340 in FIG. 3), linear regulator 450, linear regulator 455,linear regulator 460, and a Power Key 465 are in communication withprocessor 410. Processor 410 can control, using logic levels, the powerof the device as well as power to different components illustrated inFIG. 4 in some embodiments. For example, processor 410 can turn off theentire location device 10, or turn off output of the power linearregulators 450, 455, and 460 to the individual modules (powerconnections between the modules are illustrated in FIG. 5). Processor410 can also turn off the cellular module 435 by sending logic levelsignal to the Power Key 465 in some embodiments. In some embodiments,the ability to selectively shut down the different modules creates avery power efficient device.

FIG. 5 illustrates a block diagram of one embodiment of a power circuitsystem 500 (which corresponds to power circuit system 340 in FIG. 3)showing power supply interconnections. In one embodiment, the center ofthe power supply is a power management integrated circuit (IC) 505 thatis configured to receive power from both the USB connector 510 (whichcorresponds to USB connector 445 in FIG. 4) and the battery 515 anddynamically switch between the two power supplies. In some embodiments,if the USB connector 510 is used for power, power management IC 505causes the battery to be charged. In the illustrated embodiment,cellular module 520 (which corresponds to cellular module 435 in FIG. 4)is fed directly from power management IC 505. The other illustratedmodules processor 530, MEMS navigation module 540, GNSS module 550, andBluetooth module 560 are all powered via LDO (Low Dropout) linearregulator 525, linear regulator 535, linear regulator 545, linearregulator 555. As noted above, the modules in FIG. 5 correspond tomodules discussed above in FIG. 4, which are components of the systemsdiscussed in FIG. 3. As also noted above in connection with FIG. 4, thisconfiguration enables processor 410 to control power supplied to thevarious modules to ensure efficient use of power. For example, processor410 can shut down GNSS module 550 where processor 410 determines thatthe location device 10 is in a location where no GNSS signals can bereceived (e.g., a parking garage). Processor 410 can be configured toselectively shut down different modules under different triggeringconditions to ensure maximum battery life or most efficient powerconsumption of the location device 10. As another example in a parkingand payment system, processor 410 may determine that once a parkingsession has been started for location device 10, processor 410 cansupply power to MEMS navigation module 540, but restrict power to theother modules until a triggering event occurs (e.g., the location devicemoves; a button press on the location device). Triggering events mayinclude the MEMS navigation module 540 detecting motion of the locationdevice 10 over a certain speed, or the expiration of time in a legalparking zone. In this manner, the location device 10 uses the minimumamount of power necessary to maintain operation of the location device10 in the parking and payment system.

FIG. 6 illustrates a block diagram of one embodiment of a humaninterface device (HID) system 600 (which corresponds to HID system 360in FIG. 3) showing human input and feedback mechanisms of locationdevice 10. In the illustrated embodiment, processor 610 (correspondingto the processor 310, 410, etc.) is connected to button 620, button 625,button 630 and LED 635. It should be appreciated that fewer buttons ormore buttons can be added to location device 10. In some embodiments, aplurality of LED lights are used to supply information to a user oflocation device 10. In some embodiments, a display screen may beincluded in addition to or in place of the LED 635. In the illustratedembodiment of FIG. 6, button 620 is associated with turning the power onto location device 10; button 625 is associated with triggering aparking session to start; and button 630 is associated with triggering aparking session to end. The buttons may be configured to trigger anysuitable function. In some embodiments, one or more buttons may beassociated with a plurality of different functions. In some embodiments,HID system 600 may include another reset button to reset location device10 to a default operational state. The reset button may be recessed fromthe surface of the location device 10 to prevent accidental activation.In one embodiment, LED 635 provides information status to a user in avariety of different ways. In some embodiments, LED 635 may illuminate aparticular color when the device is powered on, illuminate a differentcolor when a parking session is started, illuminate yet a differentcolor when a parking session is complete. In some embodiments, theprocessor 610 may cause the LED 635 to flash in different patterns toalert the user of different events (e.g., communication mode, lowbattery mode, charging mode, etc.).

Turning now to the operations of location device 10, as noted above,location device 10 can be configured with different GNSS modules whichcan produce a variety of levels of coordinate accuracy. As noted above,some uses of location or positioning data require a high degree ofaccuracy. For example, some require positioning accuracy ofapproximately four meters or less. Obtaining this level of accuracy canbe difficult in certain situations, like dense urban setting, whetherusing expensive GNSS modules or less expensive GNSS modules. Obtainingusable GNSS data in dense urban setting introduces a number ofchallenges. High buildings in “urban canyons” can completely block GNSSsignals from a number of satellites which results in a poor satellitegeometry. Parking garages tend to also completely block GNSS signals.GNSS signals can be reflected by various surfaces which leads to thenon-line-of-sight (NLOS) GNSS signal reception as well as the multipathcontamination of GNSS signals. When a GNSS receiver is placed inside avehicle, the sky view is additionally obstructed by the roof of avehicle and multipath effects are potentially enhanced by bodies andobjects present in the vehicle. Many GNSS modules and systems (e.g.,GNSS receivers and antennas) are vulnerable to the aforementionedeffects. The aforementioned effects can result in long positiondetection convergence times and coordinate jumps of more than 10 meters.Some high end GNSS receivers are configured to mitigate some of theimpact of the above mentioned negative effects on a hardware level.However, such high end GNSS receivers are extremely expensive, extremelylarge, require high energy consumption, and still suffer from the sameissues. These high end GNSS receivers are unavailable for mass-marketplatforms due to the high cost, unacceptable physical sizes, and highenergy consumptions of these devices. Moreover, in a dense urbansetting, even high end GNSS receivers are often not capable ofovercoming issues derived from poor satellite geometry, NLOS signalsreception, and multipath effects to provide coordinates output of asufficient integrity (e.g., approximately four meters of less) to beuseful for location systems that require high accuracy positiondetection.

Thus, a need exists for a high accuracy location (or position) detectionsystem that can use inexpensive, low end GNSS receivers. As will bediscussed in FIG. 7 and FIG. 8, the disclosure herein details a highaccuracy location (or position) detection system that can useinexpensive GNSS receivers and supplement the GNSS data streams with atleast one or more other location data sources to achieve a high accuracylocation detection of approximately four meters or less, but is low incost, small in physical size, and low in energy consumption.

FIG. 7 is a flowchart of one embodiment illustrating signal processingpaths of process 700 that obtains location data streams at the locationdevice 10. One or more processors in location device 10 will convert thelocation data streams into high accuracy location data associated withthe location device 10. In one embodiment, location device 10 obtainslocation data streams from a plurality of sources. The sources mayinclude GNSS signals 710 from satellites such as GPS and GLONASS; GNSScorrections data 740, and internally generated inertial measurement data(generated by MEMS navigation module 750). In some embodiments, locationdevice 10 may also obtain GIS data (not shown). Location device 10 mayobtain other suitable data input streams in alternative embodiments. Itshould be appreciated, that some or all of the location data inputstreams illustrated in FIG. 7 may not be used or obtained in someembodiments. When available and as needed, GNSS module 730 obtains GNSSsignals 710 from available satellites through an antenna 720. The GNSSsignals 710 may include information such as, but not limited to: GPStimestamp; latitude, longitude, height; solution status; ground speed;and azimuth.

In some embodiments, the GNSS module 730 may also obtain GNSScorrections data 740, although this is not required in some embodiments.While not shown, in some embodiments, GNSS correction data 740 may beobtained from a processor such as processor 310 of the location device10. Processor 310 may obtain such GNSS correction data 740 via a serverin data center 120 or a server connected to Internet 130 through mobilenetwork 110. In some embodiments, GNSS correction data 740 may bereceived from other sources such as fixed ground-based referencestations. The GNSS correction data 740 may include differential GPSdata, ephemeris, almanac, accurate time, satellite status, and any othersuitable data points. As will be discussed further below, a processor ofthe location device 10 (e.g., processor 310) may apply the GNSScorrection data 740 to received GNSS signals 710 to calculate anddetermine more precise GNSS location data of location device 10.

MEMS navigation module 750 (which corresponds to MEMS system 330 andMEMS navigation module 425) includes sensors such as an accelerometerand a gyroscope. When MEMS navigation module 750 is activated, in someembodiments, the accelerometer and gyroscope are configured to runsubstantially simultaneously to generate and capture motion data fromthese sensors of location device 10. In some embodiments, the MEMSsystem 330 obtains data such as: linear acceleration, magnetic fields,and an angular rate. In some embodiments the MEMS system 330 may includeat least three distinct channels of each measurement to obtain inertialmotion data in 3 dimensions.

The GNSS module 730 and the MEMS navigation module 750 transmit theirdata to the GNSS/IMU integration block 760, which synchronizes the datastreams and calculates a final set of coordinate data 770. Finalcoordinates 770 are set to a 1 Hz output rate provided in someembodiments by the GNSS module 730. It should be appreciated that aprocessor, such as processor 310 in location device 10, may beresponsible and configured to receive the data streams from the GNSSmodule 730 and the MEMS navigation module 750 and perform thesynchronization and calculations. In some embodiments, processor 310 mayreceive the precise GNSS corrections data 740 and apply corrections toGNSS signals from GNSS module 730 without routing the precise GNSScorrections data 740 to the GNSS module 730.

FIG. 8 is a flowchart of process 800 that illustrates one embodiment ofthe system and method for capturing and calculating high accuracycoordinate data of location device (e.g., location device 10). At block810, a GNSS module receives at least one or more sources of GNSS data inone embodiment. The one or more sources of GNSS data correspond to atleast one geographic position at one point in time for the locationdevice. As noted in FIG. 7, the GNSS module may receive GNSS satellitedata or GNSS satellite data plus correction data from a plurality ofother sources in some embodiments. Where more than one source of GNSSdata is received, a processor of the GNSS module may modify GNSSsatellite data with any received corrective data. At block 810, a MEMSmodule generates and obtains MEMS data (e.g., inertial motion data orlocation data) in some embodiments. The GNSS module and the MEMS moduletransmit their obtained location and sensor data to a processor of thelocation device. In some embodiments, as noted above, the GNSS moduleobtains timing data from the GNSS data and uses this data to generate asynchronizing timing pulse. In one embodiment, the synchronizing timingpulse is a 1 Hz timing pulse. The timing pulse is also transmitted fromthe GNSS module to the processor of the location device.

At block 820, the processor of the location device synchronizes, usingthe timing pulse from the GNSS data processor, the received GNSS dataand the MEMS data in one embodiment. At block 830, the processor of thelocation device may then store the synchronized GNSS data and the MEMSdata in a memory of the location device in some embodiments. The storagecan be in buffers or in longer term memory storage in some embodiments.

If the processor of the location device determines that the synchronizedGNSS data and MEMS data is stored in memory (buffers or more persistentmemory), the processor in some embodiments, may then calculatecoordinate data based on the stored GNSS data and MEMS data asillustrated in block 840. The processor may execute a number ofcalculations on the GNSS data and MEMS data. In one embodiment, theprocessor applies a Kalman filter to the GNSS data and MEMS data toobtain the resulting coordinate data. However, it should be appreciatedthat other suitable filters and calculations may be applied to the GNSSdata and MEMS data to obtain cleaned up coordinate data for the locationdevice. In some embodiments, the filtering process may assign differentweights to the data inputs (e.g., GNSS data and MEMS data). For example,if the location device is under a bridge and the GPS signal is poor, thelocation device may assign a lower weight to the GNSS data and a higherweight to the MEMS data for purposes of calculating the coordinate dataof the location device. As previously noted, the processor may alsoobtain GIS data and use GIS data in addition to the other data sourcesto calculate a set of final coordinate data in some embodiments. Theprocessor may generate coordinate data that includes a timestamp,latitude, longitude, and ellipsoidal height. Other suitable outputs canbe calculated based on the location data input. In some embodiments, theprocessor may generate coordinate data with fewer data items. Asillustrated in block 850, the processor of the location device maystore, in a memory of the location device, the calculated coordinatedata.

The processor also may increment a location data point counter in someembodiments as shown in block 860. In some embodiments, obtaining asingle coordinate data point may be sufficient for location detectionpurposes. In such embodiments, process 800 may skip block 860, block870, and block 880 to terminate at block 890. The processor of thelocation device may then transmit the obtained single coordinate datapoint to a local system or module or to a remote system to use thecoordinate data determined for the location device.

On the other hand, in some embodiments, a plurality of coordinate datapoints may be required to account for errors that arise in the locationdetection process. In one embodiment, the processor of the locationdevice may require a predetermined amount of coordinate data points forbetter, more accurate location detection. For example, in a parking andpayment system using the high accuracy location detection describedherein, the parking and payment system may require 10 differentcoordinate data points to confirm that a location device is in aparticular geographic location. It should be appreciated that fewer ormore coordinate data points can be used in the parking and paymentsystem or other systems using the high accuracy location detection. Insuch an embodiment, the processor determines if the location data pointcounter is less than a predetermined number in decision block 870. Ifthe processor determines that the location data point counter is lessthan a predetermined number, then processor returns to block 810 toobtain at least one additional coordinate data for the location device.

If the processor determines that the location data point counter isequal a predetermined number, then processor moves to block 880 totransmit the stored coordinate data. As noted above, the processor ofthe location device may then transmit the obtained coordinate datapoints to a local system or module or to a remote system to use thecoordinate data determined for the location device. As illustrated inblock 880, in this embodiment, the processor transmits the coordinatedata to a geomapping server for further processing and the process 800ends at block 890.

It should be appreciated that the high accuracy location detection ofthe location devices may not have GNSS data available for the locationdetection in some embodiments. While not shown, the process 800 ofdetermining the geographic position of the location device may use othersources of location data. For example, low energy wireless beacons maybe installed throughout a geographic region. These low energy wirelessbeacons may broadcast location information similar to the GNSS dataobtained from satellites. In one embodiment, a location beacon may beinstalled in a parking garage. Thus, when the location device enterssuch a parking garage and other sources of location data are lost, thelocation device can receive the location data broadcasts from the beaconto determine that the location device is in a particular garage.Similarly, cellular tower triangulation and IEEE 802.11 (wifi)triangulation can be used when other location data signals areunavailable.

It should be appreciated that a low cost, but high accuracy locationdetection can be used in a number of different systems that requiredgeographic position information. In one embodiment, as noted above, anautomated parking and payment system may require a high accuracylocation detection to determine whether a location device is parked in alegal parking zone. The high accuracy location detection is useful forimproved direction systems to avoid providing incorrect directions (themore accurate position information can be supplied to a mobile phone'smapping application to obtain better directions). In some embodiments,the location device can be installed in corporate vehicle fleets tocollect and provide accurate data for managing the vehicle fleets. In analternative embodiment, the location device can interact with toll passsystems to provide toll payments and reduce the quantity of devices auser must maintain in a vehicle. In another embodiment, the locationdevice and the high accuracy location detection system may track avariety of different data points about a vehicle's use for insurancedata analytics. The above list of uses for the high accuracy locationdetection system and method are merely examples and other suitable usersare contemplated.

For purposes of further discussion, FIGS. 9-13C will describe in greaterdetail, some embodiments that apply the use of a low cost and highaccuracy location detection system.

FIG. 9 is a flowchart that depicts one embodiment of the location device10 connecting with a geomapping server in data center 120 for securecommunications in process 900. For security purposes, prior to process900 starting, a location device 10 may be assigned and configured withcertain identifying information such as a private Internet Protocol (IP)address, a device ID, a subscriber identification in a subscriberidentification module (SIM) chip, and information on how to contact thegeomapping server. The geomapping server or some related server ordatabase is configured to store the assigned private IP address and SIMchip information associated with the location device for laterverification during the registration and communication processes.

At block 910, a location device (such as location device 10) registerswith a local wireless network (such as mobile network 110). In someembodiments, this may occur automatically when the location device ispowered on or when a user presses a button on the location device. Inone embodiment where the location device operates on a GSM network, thelocation device may execute an international mobile subscriber identity(IMSI) attach procedure. However, any suitable registration proceduremay be employed to register the location device with the local wirelessnetwork. In one embodiment, the local wireless network is configured torecognize some unique identifying information associated with thelocation device to know that communications traffic from the locationdevice should be routed in a predetermined manner to the geomappingserver. In one such embodiment, a VPN tunnel is setup by the localwireless network to carry communications traffic from the locationdevice to a geomapping server in data center 120.

In one embodiment, once the connection to the local wireless network hasbeen established, the location device randomly (or pseudo randomly)selects a logical socket communications port number (e.g., one of thetransmission control protocol (TCP) port numbers) and opens the randomlyselected port for communication with a geomapping server in block 920.In one embodiment, only the location device initially knows the randomlyselected communications port number. In this manner, if the locationdevice receives messages or other communications requests on othercommunication port numbers, the location device will know that suchcommunication requests are unauthorized. In some embodiments when theunauthorized communications requests are received at the unselectedcommunication port numbers, the location device may turn off allcommunications on all ports as a way to prevent hacking attempts, denialof service attempts, or other unwanted intrusions or communications.

In one embodiment, the location device sends a message at block 930,through the mobile network (i.e., the local wireless network), to thegeomapping server that includes the randomly selected communicationsport number, device ID, SIM chip ID, and private IP address. It shouldbe appreciated that in some embodiments, a different set of informationmay be sent to the geomapping server to establish a connection. As notedabove, message at block 930 may be sent through the mobile networkthrough a VPN. The VPN encrypts the traffic communication between thelocation device and the geomapping server and keeps other hosts orendpoints on the mobile network from discovering the location device orgeomapping server (e.g., from brute force pings to sets or subnets of IPaddresses). However, in some embodiments, the communications trafficbetween the location device and the geomapping server on the mobilenetwork may not be through a VPN. In some embodiments, the locationdevice and geomapping server may encrypt communications traffic sentthrough the mobile network or may send the communications withoutencryption.

At block 940, the geomapping server receives the message from thelocation device through the mobile network in one embodiment. At block950, the geomapping server may open a secure communications port (e.g.,a TCP port) for communication with the location device through themobile network and another secure communications port for receivingmessages from a mobile communications device (e.g., mobile device 140)over an Internet connection (e.g., through Internet 130).

In one embodiment, the geomapping server sends, through the mobilenetwork, at least one message to the location device at the randomlyselected communications port to establish a connection with the locationdevice, as illustrated in block 960.

In some embodiments, the processor of the location device determines ifa connection is lost to the geomapping server or lost with the localwireless network (e.g. the mobile network) as illustrated in block 970.For example, the location device may send a ping message to thegeomapping server after a predetermined amount of time has elapsed. Insome embodiments, the pings may be repeated until the power is cut tothe device or until a user actively terminates the location device'sconnection to the geomapping server. If the location device determinethat the connection is lost to the geomapping server or lost with thelocal wireless network, the process 900 may return to either block 910or 920, depending on which connection is lost. In the illustratedembodiment of FIG. 9, the connection to the geomapping server is lost sothe location device starts process 900 again at block 920 to reestablisha connection with the geomapping server. It should be appreciated thatin some embodiments, the process of reestablishing a connection is amanual process that must be executed by a user of the location device.For example, the user must press a button on the location device tostart or restart process 900. In some embodiments, where the locationdevice directly communicates with mobile device 140 (via USB or a lowenergy wireless connection), a user may cause mobile device 140 to issuecommands to the location device to start or restart any part of process900.

As noted above, process 900 is not restricted to any particular systemand can be employed with any device attempting to establish a connectionwith a remote server.

FIGS. 10A, 10B, 10C, 10D, 10E, and 10F are illustrations of anembodiment using the high accuracy location detection in a parking andpayment system. A parking session for a vehicle is started in ageographic location that is associated with a legal parking zone andthen the parking session is stopped when the vehicle leaves the parkingzone. The user places a location device (e.g., location device 10) inthe vehicle 1000 (not shown). The location device registers with a localwireless network and establishes a connection to a geomapping server asdiscussed above in FIG. 9. With the location device, the user can drivein a city with legal parking zones (See, for example, FIG. 10A,reference 1010). The vehicle 1000 drives along K street in direction1008 to what visually appears to be an available parking spot 1010. InFIG. 10B, the vehicle 1000 parks in parking spot 1010. In oneembodiment, the location device automatically determines that thevehicle may be parked or the user presses a button on the locationdevice to inform the location device to check on the parking zone. Insome embodiments, the location device in vehicle 1000 determines thevehicle 1000's location using data streams from satellites 1020 a and1020 b (and along with other location data streams discussed above).

After communicating with a geomapping server (not shown) the geomappingserver determines that vehicle 1000 has arrived in a legal parking zone(FIG. 10C). In one embodiment, after a preset amount of time or after amanual action by the user (activating button on the location device),the location device sends a request to the geomapping server to start aparking session. If the geomapping server determines that a parkingsession successfully started, the geomapping server alerts the locationdevice in one embodiment. As illustrated in FIG. 10D, in one embodiment,the location device changes an LED on the location device (turns itgreen or flashes the LED) to inform the user that a parking session hasstarted. In some embodiments, the geomapping server sends informationabout expiration time, rate and hourly limit back to the location device(when the location device includes a display screen), to a mobileapplication on mobile device associated with the user, via othersuitable methods of communication with the user, or some combination ofthe foregoing. In one embodiment where the location device includes adisplay, the location device may display the expiration time: forexample, assuming that the zone has a 2-hour limit and now is 11:23 AM,the display will read, “EXPIRES AT 1:23 PM” (not shown). At some pointbetween 11:23 AM and 1:23 PM the user returns to the vehicle 1000 andstarts driving away in direction 1012 (FIG. 10E) from legal parking spot1010. In one embodiment, the location device automatically detectsmovement (e.g., movement greater than 5 miles per hour using the GNSSmodule) and the location device sends a request to the geomapping serverto end the parking session. In one such embodiment, the geomappingserver stops the parking session, processes payment for the parkingsession (when required), and sends a payment receipt 1030 to the user(FIG. 10F).

FIG. 11 illustrates one embodiment of a time-domain transaction diagram1100 showing the operational processes and communication between certainelements of the parking and payment system using a high accuracylocation detection system over time 1101. The diagram illustrates aplurality of elements such as a user's mobile device 1102, locationdevice 1104, a server 1106, a database 1108, and a payment processingserver 1110 and how these elements interact over time 1101 to provide auser with a novel parking and payment system. It should be appreciatedthat the various elements in diagram 1100 correspond to elementspreviously discussed. As with FIGS. 10A-10F, this diagram of FIG. 11assumes that the location device 1104 is in a vehicle, the user's mobiledevice 1102 is in communication with the server 1106, and locationdevice 1104 is registered with a local wireless network and hasestablished a connection to a server 1106 as discussed above in FIG. 9.

Block 1112 illustrates that location device 1104 detected a lack ofmotion and requests an evaluation of a parking event from server 1106.The lack of motion may include motion less than a predetermined speed(e.g., less than 5 miles per hour) and triggers the location device 1104to obtain location data as discussed in FIGS. 7 and 8. In oneembodiment, location device 1104 obtains a predetermined quantity ofcoordinates of the location device over a predetermined quantity oftime. In one embodiment, the location device 1104 obtains and generates1 coordinate of the location device 1104 every second for 10 seconds asdiscussed above in accordance with FIGS. 7 and 8. Location device 1104then sends these obtained 10 coordinates (as part of the evaluationrequest) to server 1106. It should be appreciated that server 1106corresponds to the previously mentioned geomapping server and may belocated in data center 120. It should also be appreciated that server1106 may represent one or more such servers that may be in one datacenter or spread across multiple different data centers.

In some embodiments, location device 1104 may not be able to obtaincoordinate data due to a number of factors. In some such cases, locationdevice 1104 may inform the user (via an LED alert, display, or via amessage to the mobile device 1102) that a parking session cannot bestarted (this process is not shown).

Returning to FIG. 11, server 1106 receives the request to evaluate theparking event 1114. The server 1106 may compare one or more of thereceived coordinates with coordinates stored in database 1108 todetermine if any of the coordinates match with a stored legal parkingzone (i.e., a legal parking zone) (see blocks 1116 and 1118). In someembodiments, all of the coordinates must match within a certain range tocoordinates of the legal parking zone to be declared a match. In someembodiments, some predetermined percentage of the coordinates receivedfrom the location device 1104 must match coordinates associated with alegal parking zone stored in database 1108 before server 1106 determinesthat location device (or the vehicle) is in a legal parking zone. If theserver 1106 determines that the coordinates received from locationdevice 1104 result in a match to a legal parking zone, the serverreturns a message 1120 to location device 1104 confirming that thelocation device is in a legal parking zone. On the other hand, if theserver 1106 determines that the coordinates received from locationdevice 1104 do not result in a match to a legal parking zone, the serverreturns a message (not shown) to location device 1104 requesting a retryof the process starting at 1112, that parking is not permitted, or thatthe user should initiate a manual parking payment process. If thelocation device 1104 makes too many attempts to confirm a parking eventwithin a predetermined period of time that result in no matches to alegal parking zone, the location device 1104 or server 1106 may haltfurther retries of the process for a predetermined amount of time. Oneembodiment of blocks 1112-1120 is discussed below in greater detail inFIG. 12.

Once location device 1104 receives the confirmation 1120 that thelocation device is in a legal parking zone, the location device 1104 mayrequest the start of a parking session as illustrated in block 1122. Thelocation device 1104 may make the request automatically to server 1106.In some embodiments, the location device 1104 makes the request toserver 1106 after a user pushes one or more buttons on the locationdevice 1104 to send the request. In some embodiments, the user mayinitiate the request to start a parking session from mobile device 1102(not shown). In some embodiments, the location device 1104 waits apredetermined amount of time before sending an automated request tostart a parking session to server 1106. For example, the location device1104 may wait one minute or some other suitable amount of time. Thelocation device 1104 may enable the user to press a button on thelocation device to prevent the location device from sending a request tostart a parking session.

In one embodiment, when the location device 1104 starts a parkingsession, the location device may shutdown or restrict power to one ormore modules in the location device. For example, during a parkingsession, the location device 1104 does not require the receipt of GNSSdata. As such, at the start of a parking session, the location device1104 may shutdown or restrict power to the GNSS module. It should beappreciated that the location device 1104 may evaluate each module givena particular situation to determine whether the module is required forthe particular situation. If the module is not required, the locationdevice 1104 will shutdown or restrict power to such modules. It shouldbe appreciated that in some embodiments, using the situational powerrestrictions in the location device may enable the location device toextend its battery life by 2 times or 3 times over its run time comparedto the situation when all of the modules of the location device wereleft running all of the time, creating a much more efficient device.

At block 1124, the server receives the request and starts a parkingsession associated with the location device 1104 in the legal parkingzone. The server may send notifications regarding the start of theparking session to the location device 1104 and to the user's mobiledevice 1102. The notifications may include attributes associated withthe legal parking zone such as cost per unit of time to park, the startof the parking session, the maximum time parking is permitted in thelegal parking zone. In some embodiments, the user can prepay for aparking session. In other embodiments, payment is not made until theuser terminates the parking session, the location device leaves thelegal parking zone, the maximum parking time has been reached, etc. Insome embodiments, the parking session is a pay-as-you-go model such thatthe user only pays for the time the location device 1104 (and vehicle)are in the legal parking zone. It should be appreciated that such asystem mitigates the need to guess how much parking time is required,mitigates the need to prepay for more parking time than is needed, andreduces the amount of time a user must spend attending to payment(running back to feed a meter or adding more time through an mobilephone app). At block 1128, the server also logs the parking session andstart of the parking session associated with the location device 1104.

In one embodiment, when the location device 1104 detects a driving event(e.g., MEMS module in the location device 1104 detects motion greaterthan a predetermined amount or the GNSS module in the location device1104 detects a speed greater than a predetermined amount), the locationdevice 1104 determines that the parking session should be terminated asillustrated in block 1130. Other events may include the user pressing abutton on the location device 1104 to terminate the parking session. Atblock 1132, the location device 1104 transmits a request to end theparking session to server 1106. In some embodiments (not shown) theserver 1106 initiates the parking session termination due to factorssuch as the maximum legal parking time being reached, a prepaid parkingsession expired, or a separate parking session termination request wasreceived from the mobile device 1102. In some embodiments, the server1106 may also initiate the parking session termination where thelocation device 1104 runs out of power during a parking session or someother suitable reason the server 1106 is configured to terminate theparking session for prior to receiving a termination request from thelocation device 1104. In some embodiments, if the user manually tries tostop the parking session through the mobile device 1102 and the locationdevice 1104 does not respond, the server 1106 may terminate the parkingsession and trigger the payment process with payment process server 1110without further communicating with the location device 1104 because thelocation device 1104 is unreachable (e.g., the location device 1104 maybe turned off, run out of batteries, an issue occurred with cellularnetwork coverage, etc.).

Returning to block 1134, the server 1106 receives the parking sessiontermination request from location device 1104 and ends the parkingsession. In one embodiment, the server 1106 stores a log of all or someof the parking session, including the end time in database 1108. If thelegal parking zone required payment (and the user did not prepay), theserver 1106 calculates the required payment based on the time andparking zone fee. The server 1106 transmits the parking session chargeto payment process server 1110. Payment process server 1110 executes acharge (e.g., charging a credit card of the user or debiting the user'sbank account) for the parking session for location device 1104. Paymentprocess server 1110 then sends payment confirmation back to server 1106as shown in block 1138. As noted above, in some embodiments, parking insome legal parking zones may not require payment, thus the transactionwith payment processor 1110 may not be required.

In some embodiments, server 1106 may then send a message to locationdevice 1104 and mobile device 1102 confirming the end of the parkingsession as illustrated in block 1140. In some embodiments, server 1106may also send log information regarding the parking session and areceipt for any charges made for the parking session as shown in block1140.

In one embodiment, location device 1104 receives the parking sessiontermination message at block 1142 and alerts the user in any suitablemanner. In one embodiment, the location device 1104 alerts the user witha change to an LED (e.g., changing the LED to red, or flashings the LEDin a particular pattern). Likewise, the user's mobile device 1102, afterreceiving the parking session termination message at block 1144, willalert the user in any suitable manner. One such display is illustratedin FIG. 13B. The mobile device 1102 may also display the payment receiptinformation in an application.

The process described above in FIG. 11 may be repeated any number oftimes when the location device 1104 detects a possible parking event. Itshould be appreciated that the above described system, in someembodiments, enables a user to park, knows the user is in a legalparking zone, and pays for parking automatically without the user takingany additional affirmative action (however it should be appreciated thatin some embodiments, the user may be required to affirmatively accept orauthorize a credit card charge, bank debit, or other charge for theparking session).

In one embodiment, where a user has prepaid for a parking session andthe user is legally able to park for additional time, the system mayautomatically purchase additional time for the parking use if thevehicle and location device has not moved at the expiration of theparking session. Alternatively, the geomapping server may automaticallyalert the user to purchase more time to extend the parking session orstart a new parking session.

FIG. 12 is a flowchart of process 1200 that illustrates one embodimentof the system and method for automatically detecting a possible parkingevent, such as described in FIG. 11 blocks 1112-1120. At block 1205, thelocation device determines, with a processor, that motion of thelocation device has ceased for a predetermined amount of time. At block1210, the location device collects, analyzes, and calculates apredetermined quantity of coordinate data points for a predeterminedquantity of time for the location device. One embodiment of the processof block 1210 was described in connection with FIG. 7 and FIG. 8. Atblock 1215, the location device transmits the calculated predeterminedquantity of coordinate data points to a geomapping server through avirtual private network. The geomapping server receives the calculatedpredetermined quantity of coordinate data points at block 1220.

At block 1225, the geomapping server analyzes the calculatedpredetermined quantity of coordinate data points to determine if thelack of motion of the location device triggers a parking event in alegal parking zone. As noted in FIG. 11, geomapping server may comparesome or all of the predetermined quantity of coordinate data pointsagainst coordinates stored in association with legal parking zones. Inone embodiment, if the geomapping server determines that five of 10coordinate data points are within two meters of a legal parking zone,then the geomapping server knows with high probability that the locationdevice is in a legal parking zone. In some embodiments, the geomappingserver compares the calculated predetermined quantity of coordinate datapoints (including a direction the location device was traveling in someembodiments) to stored road alignment data such as the coordinates ofthe centerline of a road and the coordinates of the curb edge of theroad as part of the analysis. The high accuracy of the calculatedpredetermined quantity of coordinate data points enables the server todetermine if the location device (and vehicle) is closer to the centerline of the road verses closer to the curb (which may indicate that thevehicle is in a traffic jam on a narrow road rather than attempting topark on the narrow road). The road alignment data also enables thegeomapping server to discount bad coordinate data, such as if thecalculated coordinate data indicates that a vehicle is positioned on asidewalk or in a building (which may occur due to multipath signaldistortion). If an appropriate match exists and other factors have ruledout issues such as a traffic jam on a narrow road, the geomapping serverconfirms that a parking event occurred and the parking event is in alegal parking zone at block 1230. The location device and geomappingserver may automatically initiate a parking session at block 1250 asdiscussed in FIG. 11 or permit a user of the location device to manuallystart a parking session with the location device (e.g., pressing abutton) or with a software application on the user's mobile device(executing a start parking session). Then process 1200 ends.

On the other hand, if an appropriate coordinate match does not exist,the geomapping server transmits a message to the location deviceindicating that a parking event did not occur or that the parking eventis not in a legal parking zone at block 1230. In some embodiments, thecoordinates provided by the location device may have been corrupted in avariety of different ways as noted above. In one embodiment, the process1200 includes permitting the location device to obtain and calculate newcoordinate data points. In some embodiments, the location device mayattempt to confirm the parking event a predetermined quantity of times,such as 3 times. However, any suitable quantity of times can be used. Inthis way, the location device is given one or more opportunities toobtain fresh set of location data to mitigate the reason for thepreviously unmatched coordinate data. In one such embodiment, thegeomapping server may increment a parking event detection counter atblock 1235. If the incremented parking event detection counter is lessthan a predetermined number at block 1240, then the process returns toblock 1210 for the location device to obtain and calculate newcoordinates to transmit to the geomapping server. If the incrementedparking event detection counter is equal to a predetermined number atblock 1240, then the process 1200 moves to block 1245. The geomappingserver sends a message to the location device, the user's mobile device,or both to inform the user that either parking at the current locationis not permitted or that the user should initiate a manual parkingpayment process (e.g., feeding a parking meter or paying at a parkingkiosk) and the process 1200 ends at block 1255. In some embodiments, theprocess 1200 may be restarted manually or automatically after apredetermined amount of time for the same zone.

FIGS. 13A, 13B, and 13C illustrate example embodiments of screen shotsof a mobile application corresponding to various states of the system(current active session, no active session, and locating a vehicle). Theuser may choose to install the application on their mobile phone (e.g.,mobile device 140) or other portable device capable of wireless datacommunication; provided however the same or a similar application canalso be used without installation of a mobile application on the user'smobile device. In one embodiment, the mobile application communicatesparking-related events to the user received from a geomapping server andallows the user to remotely manage and control their parking accountheld at the geomapping server. In some embodiments, the mobileapplication may obtain alerts regarding the location device, such asbattery levels, reminders to charge the battery of the location device,operational issues with the location device, etc.

FIG. 13A illustrates one embodiment of a mobile app screen 1300displayed on a mobile device when a location device in a user's vehicleis in an active parking session. Reference 13A-1 shows the time leftuntil the expiration of the maximum time allowed to park in the zone.Reference 13A-2 shows the cost of parking that has been incurred by theuser since the beginning of the parking session in one exampleembodiment. If the parking is free and the vehicle is parked in a zoneknown to the system, then Reference 13A-1 may display the time leftuntil the end of the maximum stay in a given parking spot and Reference13A-2 may reflect a $0 cost incurred in one embodiment. For example,some U.S. cities have on-street parking zones where parking is onlyallowed at given time periods and for a maximum hourly limit, e.g. 2hours. So that the user does not have to remember to return to theirvehicle in time, the mobile application can be used to set necessaryreminders. In some embodiments, the reminders are created automaticallyfor the user when the mobile application (the mobile device)communicates with the geomapping server. The time and duration limitsfor parking in that zone can be stored in a database (e.g., database1108 in FIG. 11) associated with the system.

Reference 13A-3 displays a touch-responsive “start” button having thesame functionality as a button on the location device that can be usedto start a parking session manually in one example embodiment. Reference13A-4 displays a touch-responsive “stop/cancel” button having the samefunctionality as a button on the location device that can be used tostop a parking session manually in one embodiment. The mobileapplication thus provides remote interaction with the system withoutusing the location device's physical interface. However, as noted above,in some embodiments, the mobile device (and the mobile application) maycommunicate directly with the location device and may control thelocation device through this channel of communication and also accessthe parking and payment system through the location device.

FIG. 13B shows another embodiment of a screen 1310 displayed by themobile application when the location device and vehicle are not parkedin any legal parking zone or any legal parking zone that requires accessto the parking and payment system. Accordingly, reference 13A-1 does notdisplay any time remaining and reference 13A-2 displays “OFF” because nocost accrual meter is running.

FIG. 13C illustrates a built-in map interface screen 1320 in oneembodiment that can be used by the users of the parking and paymentsystem to locate their parked vehicle and reach it expeditiously byfollowing the supplied routing directions 13A-5 (if needed). The mapinterface can be used in other embodiments to communicate to the userthe information about legal parking zones and guide the users to thezones most relevant to their destination. In a further embodiment, theinformation included on the map interface includes hourly limit andrates for legal parking zones.

In another embodiment, the map interface retrieves spot availabilityinformation in real (or near real) time from the parking and paymentsystem and highlights the locations of empty parking spaces to assistthe user in rapidly locating a parking spot. In one embodiment, thescreen 1320 may enable the user to select a button to obtain the closestparking, prices of the parking spots, and space availability. In someembodiments, when many location devices are in use, the geomappingserver tracks what legal parking zones are occupied with a locationdevice and what legal parking zones are not occupied with locationdevices.

In an alternative embodiment, the geomapping server tracks and stores,in real time or near real time, currently occupied spaces that are beingvacated by vehicles using the location device (e.g., location devicesthat have very recently ended a parking session and are moving). When auser is searching for a parking space (also referred to herein as alegal parking space) within a legal parking zone that is nearby theuser's current location, the geomapping server can send such a user therecently vacated parking spaces known to the geomapping server in someembodiments. The geomapping server may send such information to a mobiledevice of the user (so that the user can obtain a map and directions tothe recently vacated spaces). In some embodiments, the determination ofrecently vacated parking spaces may be based on a predetermined periodof time. For example, a recently vacated legal parking space within alegal parking zone may comprise a legal parking space that was vacatedin the last 2-4 minutes. This predetermined number may change dependingon the jurisdiction, the time of day, or other suitable factors (toadjust for very dense urban areas where legal parking spaces are in suchhigh demand that even 60 seconds may make the information stale andincorrect). It should therefore be appreciated that one benefit to thelocation devices communicating with the geomapping server to end parkingsessions is that the geomapping server will have real time or near realtime data on availability of legal parking spaces within legal parkingzones. As the number of location devices increase in a given geographicarea, the usable quantity of real time or near real time parking datawill likewise increase.

FIGS. 14A and 14B illustrate an example embodiment in which the locationdevice 1410 (which corresponds to location device 10) is integrated intoan on-board electronic system of a vehicle 1400 (e.g., vehicle 20). Thevehicle computer 1430 can be connected to the location device 1410 viaan existing bus link, such as a controller area network (CAN) interface(1450). In one embodiment, the vehicle computer 1430 controls a vehicledisplay 1440 and can communicate parking-related messages to the userthrough the vehicle display 1440 and audio system (not shown). Thevehicle battery 1420 is used as a power supply in the exampleembodiment. FIG. 14B illustrates an embodiment in which the vehiclecomputer 1430 integration is implemented using a standard OBD II(On-board diagnostics) port in the vehicle 1400. The exact integrationschema for such an integration depends on the vehicle manufacturer andspecific features of the vehicle. The integration illustrated in FIG.14B is merely an example and other forms of integration may be required.In one embodiment, the CAN bus high and low can be used for the link,the signal and chassis ground can be used for ground together, and +12Vsupply can be used to power the location device 1470 (which maycorrespond to location device 10).

In other embodiments, the location device is not integrated in itsentirety into the vehicle on-board electronic system. For example,built-in communications systems are present in certain vehicle modelsand include a wireless communication interface that can be adapted toestablish a link between the location device and a geomapping server. Insuch instances only certain components of the location device, such asthe high accuracy geolocation positioning system and certain algorithms(whether implemented in hardware or software), will need to beadditionally integrated into the vehicle system.

In one embodiment, the location device can be configured with analpha-numeric display that can provide the user with useful informationand also aids parking enforcement agents enforce parking laws. In oneembodiment, the location device has an electronic display to communicatemessages to the user and the parking enforcement agents, such as thetime of expiration of a current parking session, battery level of thelocation device, or reminders to charge the location device if it has alow battery level. The user can choose to pay attention to such messageson the display screen and follow them to make sure the system worksproperly. If the location device is placed in a windshield of the user'svehicle and can be easily seen from outside of the vehicle, parkingenforcement agents can use the information from the display to establishwhether the vehicle is legally parked and that payment will be processedfor the vehicle to stay in the parking zone. For example, a message toparking enforcement may read “EXPIRES AT 1:23 PM”, which, if the currenttime is, for example, 1:11 PM, the message tells the enforcement agentthat the vehicle has more time to stay legally in the parking spot.

In some embodiments, an LED light on the location device can be used inplace of the display screen or as an additional indicator of activeparking sessions and other messages, such as error messages, to becommunicated to the user and parking enforcement agents. For example,the location device can illuminate the LED light to a solid green (notflashing) when the parking session is active. In another example,location device can cause the LED light to flash or blink if an errorhas occurred or if a parking session has not been started.

In another embodiment, the location device can be fitted with a speakerto facilitate communication with the user by providing additionalmessages in an audio format. For example, when the user arrives in alegal parking zone and the location device does not move for a presettime (e.g., 30 seconds, 1 minute, some other suitable amount of time),the location device may attempt to register a parking event andannounces by the speaker, the information retrieved from the geomappingserver, such as the hourly limit and rate for a legal parking zone. Sucha message may say: “You have successfully parked your vehicle. You canstay here for two hours until 1:23 PM and will pay $2 per hour,” in anexample embodiment.

In one embodiment, the location device can be configured to communicatewith a parking enforcement device. For example, in an embodiment wherethe location device includes a low energy wireless communication system,the location device can receive requests for information from theparking enforcement device also configured with a compatible low energywireless communication system. The location device can provideinformation about an active parking session for the location device.Alternatively, where the location device does not have an active parkingsession, the location device can provide its identification informationto the parking enforcement device so that the parking enforcement agentcan generate a ticket based on the account information of the locationdevice. In this manner, a parking enforcement agent can quickly walk byor drive by vehicles with location devices and automatically know whichvehicles are legally parked. In some embodiments, the parkingenforcement agent can send an invoice for a parking violation to thegeomapping server for processing. In this manner, the geomapping servercan alert the user of the parking violation and provide the user with aticket. In some embodiments, the geomapping server enables the user topay for the ticket through the parking and payment system. The user canauthorize the payment using the mobile device application or by pressinga button on the location device to authorize the payment. In someembodiments, when a parking enforcement agent has generated a ticketassociated with one location device and sent the information to thegeomapping server, the geomapping server may send alerts to users ofother nearby (e.g., within a 3 block radius, or other suitable radius)location devices that are not in legal parking zones (or have inactiveparking sessions) to move their vehicles to legal parking zones or toactivate a parking session.

In another embodiment, a user with a location device may be suppliedwith a unique barcode, QR code, or other machine readable code that isassociated with the location device or with the user's account at thegeomapping server. The machine readable code can be placed in a visiblearea of the user's vehicle while the location device remains hidden inthe vehicle. When a parking enforcement agent scans the machine readablecode, a parking enforcement device can send a request to a geomappingserver for information associated with the machine readable code. If thelocation device has activated a parking session in a legal parking zone,the queried geomapping server will respond with a message to the parkingenforcement device that the vehicle is legally parked. The geomappingserver may provide other useful information such as when the parkingsession expires and whether additional parking time can be purchased.The geomapping server may also have other information about the vehicle(e.g., how many tickets are associated with the vehicle, whether anyoutstanding law enforcement flags are associated with the vehicle).

In some embodiments, the geomapping server collects crowdsourced datafrom users to update its database of legal parking zones. In oneembodiment, the user may select a function on the user's mobile devicewhich sends a request to a geomapping server to obtain coordinates ofthe user's location device as being in a new legal parking zone. Thegeomapping server may send a request for the location device tocalculate its current coordinates and send such coordinates back to thegeomapping server for review as a potentially new legal parking zone. Insome embodiments, the geomapping server may send a request to a local orstate government server for confirmation that such coordinates areassociated with a new legal parking zone. If confirmation is receivedfrom a government server, then the geomapping server may update itsdatabase to reflect that such coordinates are a new legal parking zonefor future parking sessions. In some embodiments, a button on thelocation device may be associated with informing the geomapping serverthat a current position of the location device is associated with a newlegal parking zone.

In some embodiments, if the geomapping server receives a plurality ofrequests from different users that a particular set of calculatedcoordinate data is associated with a new legal parking zone, thegeomapping server may automatically add such calculated coordinate datato its database as a new legal parking zone for future parking sessions.The minimum quantity of requests may be five or more requests; providedhowever, that any suitable number of requests may be used as thethreshold to add the calculated coordinate data to the geomappingserver's database of legal parking zones. In some embodiments, the usermay provide additional information to the geomapping server regardingthe new legal parking zone, such as maximum parking times, costs pertime in the new legal parking zone. In some embodiments, this additionalinformation is added to the database when a predetermined amount ofusers provide the same information about the new legal parking zone. Insome embodiments, the user may provide such information through theapplication on the user's mobile device.

Embodiments described herein may be implemented in hardware, firmware,software, or any combination thereof. Embodiments of the disclosureherein may also be implemented as instructions stored on amachine-readable medium, which may be read and executed by one or moreprocessors. A machine-readable medium may include any mechanism forstoring or transmitting information in a form readable by a machine(e.g. a computing device). For example, a machine-readable medium mayinclude read only memory (ROM); random access memory (RAM); hardwarememory in handheld computers, PDAs, smart phones, and other portabledevices; magnetic disk storage media; optical storage media; USB drivesand other flash memory devices; Internet cloud storage, and others.Further, firmware, software, routines, instructions, may be describedherein as performing certain actions. However, it should be appreciatedthat such descriptions are merely for convenience and that such actionsin fact result from computing devices, processors, controllers or otherdevices executing the firmware, software, routines, instructions, etc.

Although illustrative embodiments have been described herein in detail,it should be noted and understood that the descriptions and drawingshave been provided for purposes of illustration only and that othervariations both in form and detail can be added thereto withoutdeparting from the spirit and scope of the disclosure. The terms andexpressions in this disclosure have been used as terms of descriptionand not terms of limitation. Thus, the breadth and scope of the presentdisclosure should not be limited by any of the above-describedembodiments, but should be defined only in accordance with the claimsand their equivalents. The terms and expressions herein should not beinterpreted to exclude any equivalents of features shown and described,or portions thereof. Moreover, various forms of the process flows shownabove may be used, with blocks re-ordered, added, or removed.Accordingly, other embodiments are within the scope of the followingclaims.

We claim:
 1. A mobile location system comprising: a global navigationsatellite systems (GNSS) processor; a location processor; a memorydevice that stores a plurality of instructions, which when executed bythe location processor, causes the location processor to be configuredto: upon the detection of a first predetermined event: receive aplurality of GNSS data streams from the GNSS processor; receive aplurality of vehicle motion data streams from a processor that capturesvehicle motion data; calculate, with the location processor, coordinatedata streams using the received plurality of GNSS data streams and theplurality of vehicle motion data streams; transmit, to a geomappingserver, the calculated coordinate data streams, wherein the calculatedcoordinate data streams are based on the plurality of GNSS data streamsand the plurality of vehicle motion data streams; determine that atleast one of the transmitted plurality of calculated coordinate datastreams is associated with a legal parking zone; based on thedetermination that the at least one of the transmitted plurality ofcalculated coordinate data streams is associated with a legal parkingzone: receive, from the geomapping server, a legal parking zone messagethat at least one of the plurality of calculated coordinate data streamsis associated with the legal parking zone; and cause a parking sessionto be initiated.
 2. The mobile location system of claim 1, wherein thedetection of the first predetermined event comprises detecting that themobile location system is moving less than a predetermined speed.
 3. Themobile location system of claim 1, wherein the location processorfurther receives a timing pulse.
 4. The mobile location system of claim4, wherein the location processor further synchronizes the plurality ofGNSS data streams and the plurality of vehicle motion data streams inaccordance with the timing pulse.
 5. The mobile location system of claim1, wherein causing the parking session to be initiated comprisestransmitting a request to the geomapping server to initiate the parkingsession.
 6. The mobile location system of claim 5, wherein thetransmitted request to the geomapping server to initiate the parkingsession is automatic, without user input.
 7. The mobile location systemof claim 1, wherein the GNSS processor collects a predetermined quantityof location data points for a predetermined quantity of time.
 8. Themobile location system of claim 1, further comprising transmit, to thegeomapping server, a parking session end message to end the parkingsession upon detection of a second predetermined event, wherein thedetection of the second predetermined event comprises detecting that themobile location system is moving faster than a predetermined speed. 9.The mobile location system of claim 1, wherein if the transmittedplurality of data streams are not associated with a legal parking zone,receive, from the geomapping server, a retry message.
 10. The mobilelocation system of claim 9, wherein upon receiving the retry message,the location processor further: receives a third plurality of datastreams from the GNSS processor; and transmits, to the geomappingserver, additional calculated coordinate data streams based on the thirdplurality of data streams.
 11. The mobile location system of claim 9,wherein if a predetermined number of retry messages are received fromthe geomapping server within a predetermined time period, a messagereceived from the geomapping server causes the location processor toalert a user that the parking session cannot be initiated.
 12. Ageomapping server comprising: a processor; and a memory device thatstores a plurality of instructions, which when executed by theprocessor, causes the processor to be configured to: receive, from alocation device, a plurality of calculated coordinate data streams thatare based on a plurality of global navigation satellite systems (GNSS)data streams and a plurality of vehicle motion data streams; compare thereceived plurality of calculated coordinate data streams with a storedplurality of coordinates; determine if one or more of the receivedplurality of calculated coordinate data streams matches is associatedwith a legal parking zone; if a match is determined: transmit, to thelocation device, a legal parking zone message confirming that one ormore of the received plurality of calculated coordinate data streams isassociated with the legal parking zone; receive, from the locationdevice, a parking session initiation message to initiate a parkingsession; and start a parking session associated with the locationdevice.
 13. The geomapping server of claim 12, wherein the processorfurther: receives, from the location device, a parking session endmessage to terminate the parking session; transmits, to a paymentprocessing server, a parking session charge associated with theterminated parking session; receive, from the payment processing server,a payment confirmation message; and transmit, to a mobile user device, aparking session end confirmation message that further comprises apayment receipt.
 14. The geomapping server of claim 12, wherein theprocessor further: stores real time parking session informationassociated with a plurality of different location devices; receives,from a mobile user device, a request for real time parking spaceavailability located near a particular coordinate; evaluates a pluralityof legal parking zones near the particular coordinate to determine ifany of the plurality of different location devices vacated one of theplurality of legal parking zones within a predetermined period of time;and if one of the plurality of different location devices vacated one ofthe plurality of legal parking zones within the predetermined period oftime, transmit a parking coordinate associated with the one of theplurality of legal parking zones to the mobile user device.
 15. Thegeomapping server of claim 12, wherein the processor further: receives,from a plurality of different mobile user devices, information updatesregarding a plurality of legal parking zones; transmits, to the locationdevice, a legal parking zone message confirming that one or more of thereceived plurality of calculated coordinate data streams is associatedwith the legal parking zone based on the information updates regarding aplurality of legal parking zones.
 16. The geomapping server of claim 12,wherein if the match is not determined, the processor further receivesadditional pluralities of calculated coordinate data streams apredetermined number of times.
 17. A location system comprising: aglobal navigation satellite systems (GNSS) processor; a locationprocessor; a memory device that stores a plurality of instructions,which when executed by the location processor, causes the locationprocessor to be configured to: upon the detection of a firstpredetermined event: receive a plurality of GNSS data streams from theGNSS processor; receive a plurality of vehicle motion data streams;convert the plurality of GNSS data streams and the plurality of vehiclemotion data streams into a plurality of coordinate data streams;transmit, to a geomapping server, the plurality of coordinate datastreams, where the coordinate data streams are based on the plurality ofGNSS data streams and the plurality of vehicle motion data streams;determine that at least one of the transmitted plurality of coordinatedata streams is associated with a vehicle use event; and based on thedetermination that the at least one of the transmitted plurality ofcoordinate data streams is associated with a vehicle use event: initiatea vehicle use event transaction.
 18. The location system of claim 17,wherein the vehicle use event transaction comprises causing a payment tobe made.
 19. The location system of claim 17, wherein the vehicle useevent transaction comprises causing a location database, which storesthe location data of a plurality of vehicles, to be updated withlocation data of the location system.